home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / defoma-hints < prev    next >
Text File  |  2006-06-17  |  2KB  |  105 lines

  1. #! /usr/bin/perl -w
  2. # Defoma - Debian Font Manager
  3. # Copyright (C) 2000 Yasuhiro Take <take@debian.org>
  4. # This program is free software. You can freely use, copy, modify, and
  5. # redistribute it under the terms of the GNU General Public License, Version 2.
  6.  
  7. use Debian::Defoma::Font;
  8. import Debian::Defoma::Font;
  9. use Debian::Defoma::Common;
  10. import Debian::Defoma::Common qw(&DEFOMA_TEST_DIR);
  11.  
  12. $LIBDIR = DEFOMA_TEST_DIR . "/usr/share/defoma";
  13.  
  14. @EXITREMOVE = ();
  15.  
  16. $SIG{'HUP'} = \&signalexit;
  17. $SIG{'INT'} = \&signalexit;
  18. $SIG{'QUIT'} = \&signalexit;
  19. $SIG{'TERM'} = \&signalexit;
  20. $SIG{'__DIE__'} = \&emes;
  21.  
  22. require("$LIBDIR/libperl-hint.pl");
  23.  
  24. sub exitfunc {
  25.     my $e = (@_ > 0) ? shift(@_) : 0;
  26.     my $msg = (@_ > 0) ? shift(@_) : undef;
  27.  
  28.     unlink @EXITREMOVE if (@EXITREMOVE);
  29.  
  30.     print STDERR $msg, "\n" if (defined($msg));
  31.     
  32.     exit $e;
  33. }
  34.  
  35. sub signalexit {
  36.     exitfunc(255);
  37. }
  38.  
  39. sub emes {
  40.     print 'defoma-hints ', @_, '\n';
  41.     exitfunc 1;
  42. }
  43.  
  44. sub usage_and_exit {
  45.     print "defoma-hints [-c] [--no-question] <category> <font>...\n";
  46.     exitfunc 1;
  47. }
  48.  
  49. ### main()
  50.  
  51. usage_and_exit if (@ARGV == 0);
  52.  
  53. my $MODE = 'g';
  54. my $NOQ = 0;
  55.  
  56. while ($ARGV[0] =~ /^-/) {
  57.     if ($ARGV[0] eq '-c') {
  58.     $MODE = 'c';
  59.     } elsif ($ARGV[0] eq '--no-question') {
  60.     $NOQ = 1;
  61.     }
  62.     shift(@ARGV);
  63. }
  64.  
  65. usage_and_exit if (@ARGV < 2);
  66.  
  67. $CATEGORY = shift;
  68. $LIBFILE = "$LIBDIR/libhint-$CATEGORY.pl";
  69.  
  70. my $sufpath = "";
  71. if ($ARGV[0] =~ /^[^\/]/) {
  72.     $sufpath = "/path/to/";
  73. }
  74.  
  75. print STDERR "Wait for second...\n";
  76.  
  77. defoma_font_init();
  78. hint_beginlib('HintsGenerator', 70, $MODE, $sufpath, $NOQ);
  79.  
  80. if (-e $LIBFILE) {
  81.     require($LIBFILE);
  82.     my $funcptr;
  83.     eval("\$funcptr = \\&sethint_$CATEGORY");
  84.  
  85.     print "category $CATEGORY\n";
  86.  
  87.     foreach $FONTPATH (@ARGV) {
  88.     my $lhints = &{$funcptr}($FONTPATH);
  89.     next unless (defined($lhints));
  90.     
  91.     print "begin $sufpath$FONTPATH\n";
  92.     my @hints = lhints2hints($lhints);
  93.     print join("\n", @hints);
  94.     print "\nend\n";
  95.     }
  96.  
  97.     exitfunc(0);
  98. }
  99.  
  100. exitfunc(1, "HintGenerator Library for $CATEGORY not found.");
  101.  
  102.  
  103.  
  104.  
  105.